Prediction coding is a known technique for compressing an electronic signal representing a motion picture (a "motion picture signal") prior to transmitting or storing the signal. Prediction coding is a method of compressing the motion picture signal that takes advantage of the interframe correlation of the signal. Interframe prediction coding predicts the pixel values of the current picture from the pixel values of past pictures, determines a motion vector between portions of the current picture and corresponding portions of the past pictures, and, in response thereto, generates a prediction signal. FIG. 1 is a block diagram of a conventional interframe prediction coding circuit that generates such a prediction signal.
In the conventional interframe prediction coding circuit 10 shown in FIG. 1, the terminals 1 through 3 are respectively supplied with the luminance signal Y and a pair of color-difference signals, C.sub.B (=B-Y) and C.sub.R (=R-Y), all of which are components of the motion picture signal to be compressed prior to transmission or storage. These analog signal components are respectively converted by the analog to digital (A/D) converters 4, 5 and 6, into digital signals, which are fed into the buffer circuit 7. The buffer circuit 7 converts these digital signals into a serial signal which is arranged, for example, in the order in which the luminance signal Y of a given picture comes first, followed by the color-difference signal C.sub.B, and then by the color-difference signal C.sub.R.
The serially-arranged motion picture signal S1 is subtracted from the prediction signal S2 by the subtracter 13, and the resulting difference video signal S3 may be regarded as a prediction error signal S3. In the motion picture signal S1, the current picture is correlated with future or past pictures. Hence, the prediction error signal S3, which represents the differences between the motion picture signal S1 and prediction signal S2, which is derived from the pixels of one or more prediction pictures, i.e., future or past pictures, is small.
The prediction error signal S3 is supplied to the orthogonal transform circuit 14. In this embodiment, a discrete cosine transform (DCT) is used for the orthogonal transform. Alternatively, a Hadamard transform may be employed to perform the orthogonal transform. The transform coefficients S4 resulting from the orthogonal transform are sent to the quantizing circuit 15, where they are quantized.
The quantized transform coefficients S5 are subject to variable-length coding by the variable-length coding circuit 16. The resulting coded transform coefficients S6 are then multiplexed with their respective motion vectors by the multiplexer 17, and the resulting multiplexed signal is fed to the output terminal 19 via the output buffer 18. The resulting compressed motion picture signal S6 appearing at the output terminal 19 is then transmitted, stored, or processed further.
Generation of the prediction signal S2, used for deriving the prediction error signal S3, will now be described.
The quantized transform coefficients S5 are inversely quantized in the inverse quantizing circuit 21. The resulting transform coefficients S7 are then fed to the inverse discrete cosine transform circuit 22. The inverse discrete cosine transform circuit 22 inversely orthogonally transforms the transform coefficients S7 to provide a reconstructed prediction error signal S8, which has the same format as the output of the subtracter 13. The resulting reconstructed prediction error signal S8 is added to the prediction signal S2 by the adder 23, and the resulting reconstructed picture is fed from the adder 23 into the frame memory 24.
The video signal S9 representing one or more reconstructed pictures is fed from the frame memory 24 to the motion compensation circuit 25 and the motion vector detector 26. The prediction process is performed using the motion vectors generated by the motion vector detection circuit 26 using a block matching technique. Hence the prediction signal S2 is produced block by block.
Block matching is a technique which detects the degree of matching (degree of coincidence) between a search block (which may be as large as 8 pixels x 8 lines, for example) of the current picture, and a similarly-located, same-sized target block in the prediction picture. The location of the target block in the prediction picture is chosen to provide a maximum degree of coincidence between the search block and the target block. The displacement of the target block relative to the search block is then expressed as the motion vector for the search block.
The motion vector detection circuit 26 determines motion vectors using block matching. The motion vector detection circuit 26 determines the motion vector for each block of the current picture provided by the A/D converter 4 to represent the motion between each block of the current picture and the corresponding target block of the prediction picture provided by the frame memory 24.
The motion compensation circuit 25 provides each target block of the prediction picture as a block of the prediction signal S2. The motion compensation circuit also provides, in a coded format, the motion vectors which were used to produce the prediction signal S2. The motion vectors are fed to the multiplexer circuit 17.
In the interframe prediction coding circuit 10 in which the motion vector detector performs block matching, since the motion vector is calculated using only the luminance signal Y, no motion vector is detected for those blocks of the current picture that are at the same luminance level as corresponding blocks of the prediction picture, even when there is movement between the current picture and the prediction picture.
Because of this, the prediction signal S2 is non-optimum, and a large prediction error signal S3 is generated, which increases redundancy in the compressed motion picture signal.